﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Segmentator.Interfaces;

namespace Segmentator.Dividers
{
    /// <summary>
    /// Вывод результатов сегментации на форму
    /// </summary>
    class OutFormDevice:Device
    {
        public override void Print(BaseCharacteristic results, IDataUploader inputData)
        {
            inputData.OutEntropy(results.GetEntropy(Algorithm._linkUp, results.SlotChain));
            inputData.OutAmountOfInformation(results.GetAmountOfInformation(Algorithm._linkUp, results.SlotChain));
            inputData.OutChainGamut(results.GetChainGamut(Algorithm._linkUp, results.SlotChain));
            inputData.OutChainRegularity(results.GetChainRegularity(Algorithm._linkUp, results.SlotChain));
            inputData.OutChainRemoteness(results.GetChainRemoteness(Algorithm._linkUp, results.SlotChain));
            inputData.OutSlotChain(results.GetSlotChain());
            inputData.OutFormationSlotChain(results.GetFormationSlotChain());
            inputData.OutFoundThreshold(results.GetThreshold());
            inputData.OutDictionary(results.GetAlphabet());
            inputData.OutTheoryVolumeOfAlphabet(results.GetTheoryVolumeOfAlphabet());
            inputData.OutEmpiricalVolumeOfAlphabet(results.GetEmpiricalVolumeOfAlphabet());

            inputData.InEntropy(results.GetEntropy(Algorithm._linkUp, results.Chain));
            inputData.InAmountOfInformation(results.GetAmountOfInformation(Algorithm._linkUp, results.Chain));
            inputData.InChainGamut(results.GetChainGamut(Algorithm._linkUp, results.Chain));
            inputData.InChainRegularity(results.GetChainRegularity(Algorithm._linkUp, results.Chain));
            inputData.InChainRemoteness(results.GetChainRemoteness(Algorithm._linkUp, results.Chain));
            inputData.InFormationChain(results.GetFormationChain());
            
        }
    }
}
